"""
类属性：就是类所拥有的属性，它被该类的所有的实例对象 所共有
实例属性：就是单个对象或者实例才能拥有的属性
"""

"""
1、类属性
记录的某项数据 始终保持一致时，则定义类属性
实例属性 要求 每个对象为其单独开辟一份内存空间来记录数据
而类属性为全类所共有，仅占用一份内存，更加节省空间。

class Person(object):
    type_name='人类'

注：
类属性只能通过类对象修改，不能通过实例对象修改
如果通过实例对象修改类属性，表示的是创建了一个实例属性。
"""


class Person():
    species = "人类"  # 物种名字，是 类属性

    def __init__(self, name):
        self.name = name  # 对象属性，成员属性，实例属性

    def setName(self, name):
        self.name = name


p1 = Person('张三')
p2 = Person('李四')

# 访问属性（类属性、对象属性）
print(p1.name)
print(p1.species)

print(p2.name)
print(p2.species)

print(Person.species)

# 修改对像属性
p1.name = 'zhangsan'
print(p1.name)

# 修改类属性，只有这一种方法
Person.species = 'renlei'
